#pragma once


#include<stdio.h>
#include<assert.h>
#include<stdlib.h>


typedef int SLDataType;


// 顺序表
typedef struct SeqList
{
    SLDataType* _array; // 指向动态开辟的数组
    size_t _size; // 有效元素的个数
    size_t _capacity; // 容量
}SeqList;



//void SLInit(SeqList* psl);
void SeqListInit(SeqList* psl);
void SeqListDestroy(SeqList* psl);

// void SeqListCheckCapacity(SeqList* psl);

// 时间复杂度是O(1) - 尾插尾删
void SeqListPushBack(SeqList* psl, SLDataType x);
// void SeqListPopBack(SeqList* psl);

// 时间复杂度是O(N) - 头插头删
// void SeqListPushFront(SeqList* psl, SLDataType x);
// void SeqListPopFront(SeqList* psl);

// 在pos位置插入x - 随机插入删除
// void SeqListInsert(SeqList* psl, size_t pos, SLDataType x);
// 删除pos位置的数据
// void SeqListErase(SeqList* psl, size_t pos);

// 顺序表查找
// int SeqListFind(SeqList* psl, SLDataType x);

void SeqListPrint(SeqList* psl);
